home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 52 / Amiga Format AFCD52 (Issue 136, May 2000).iso / +system+ / tools / gui / visualprefs.lha / VisualPrefs / DocsItaliano / VP-Developer.doc < prev    next >
Text File  |  1997-11-27  |  5KB  |  124 lines

  1.  
  2.                               Introduzione:
  3.  
  4.                L'INTERFACCIA DI VISUALPREFS PER SVILUPPATORI
  5.  
  6.                         Documento in preparazione
  7.  
  8.  
  9. Se sei uno sviluppatore puoi usufruire di certe funzionalità di VisualPrefs.
  10.  
  11. Anche se non esiste ancora una vera e propria API di VisualPrefs per gli
  12. sviluppatori è già possibile utilizzare le classi BOOPSI che VisualPrefs
  13. aggiunge al sistema.
  14.  
  15. Lo scopo di queste classi è fornire ai programmatori un modo facile di
  16. ottenere il "look di VisualPrefs" senza dover aspettare che io implementi
  17. in VisualPrefs un patch per i loro applicativi. ;-)
  18.  
  19. Attualmente c'è solo una classe:
  20.  
  21. "tbiclass" - la classe di immagini per la titlebar (titlebar image class)
  22.  
  23. Questa classe fornisce le immagini più comunemente usate per i gadget
  24. aggiunti dagli applicativi alla titlebar delle loro finestre. Esempi di
  25. ciò sono l'onnipresente gadget "iconify" o il gadget "padlock" di DirOpus 5.
  26.  
  27. Tutti i programmi che usano questa classe riceveranno automaticamente lo
  28. stesso aspetto per le loro immagini per la titlebar se VisualPrefs è in
  29. funzione. Probabilmente è meglio che avere miriadi di versioni diverse
  30. della stessa immagine...
  31.  
  32. Puoi usare "tbiclass" proprio come "sysiclass"; sono entrambe sottoclassi di
  33. "imageclass". Un'immagine "tbiclass" può essere creata chiamando NewObject()
  34. con i seguenti tag:
  35.  
  36. SYSIA_DrawInfo - Questo è assolutamente necessario. DEVI passare a "tbiclass"
  37.                  un puntatore a DrawInfo oppure NewObject() fallirà.
  38.  
  39. SYSIA_Which - Per specificare quale immagine si vuole; attualmente ci sono
  40.               sei tipi di immagine:
  41.  
  42.               POPUPIMAGE    - Immagine per il gadget "pop-up" di MUI
  43.               MUIIMAGE      - Immagine per il gadget "settings" di MUI
  44.               SNAPSHOTIMAGE - Immagine per il gadget "snapshot" di MUI
  45.               ICONIFYIMAGE  - Immagine per il gadget "iconify"
  46.               PADLOCKIMAGE  - Immagine per il gadget "padlock" di DirOpus
  47.               TBFRAMEIMAGE  - Immagine vuota (solo contorno) di uso generale
  48.  
  49. IA_Width, IA_Height - Questi sono riconosciuti solo dal tipo TBFRAMEIMAGE;
  50.                       gli altri tipi di immagine li ignorano e hanno sempre
  51.                       la stessa dimensione del gadget di profondità.
  52.  
  53. SYSIA_ReferenceFont - Questo è riconosciuto solo dal tipo TBFRAMEIMAGE;
  54.                       gli altri tipi di immagine lo ignorano e hanno sempre
  55.                       la stessa altezza del gadget di profondità.
  56.  
  57. Naturalmente se NewObject() fallisce dovresti fornire una immagine di ripiego
  58. creata dal tuo programma. Tuttavia intendo rilasciare presto una classe
  59. "tbiclass" esterna freeware che potrai includere nella distribuzione dei
  60. tuoi applicativi. Questa classe fornirà le immagini necessarie e verrà
  61. sostituita automaticamente da quella di VisualPrefs se sarà presente.
  62. Di conseguenza puoi mantenere molto semplici le tue immagini di ripiego. ;-)
  63.  
  64. È importante notare che tutte le istanze di immagini "tbiclass" avranno un
  65. valore di -1 in Image->LeftEdge. Questo non dovrebbe venire modificato e
  66. dovresti posizionare i tuoi gadget nella titlebar rispettando ciò. Il motivo
  67. di questo apparentemente strano comportamento è che anche le immagini dei
  68. gadget di Intuition per la titlebar funzionano in questo modo, e dovremmo
  69. cercare di mantenere la massima compatibilità con Intuition.
  70.  
  71. Inoltre assicurati di modificare se necessario la dimensione del tuo gadget
  72. per adattarla alla dimensione dell'immagine ottenuta.
  73.  
  74. Un esempio di tutto ciò potrebbe essere:
  75.  
  76.    ...
  77.  
  78.    /* Crea l'immagine */
  79.  
  80.    if (!(iconifyimage = NewObject(NULL,"tbiclass",SYSIA_Which,ICONIFYIMAGE,
  81.                                                   SYSIA_DrawInfo,dri,
  82.                                                   TAG_END)))
  83.    {
  84.       iconifyimage = builtin_iconifyimage;
  85.    }
  86.  
  87.    /* Usa l'immagine */
  88.  
  89.    gad->GadgetRender = iconifyimage;
  90.    ...
  91.  
  92.    /* Libera l'immagine */
  93.  
  94.    if (iconifyimage != builtin_iconifyimage) DisposeObject(iconifyimage);
  95.  
  96.    ...
  97.  
  98. Questo è tutto. Per ora non ho un vero file include, per cui, se vuoi usare
  99. "tbiclass" nei tuoi applicativi, per favore inserisci le righe seguenti in
  100. cima al tuo codice sorgente. :-]
  101.  
  102. ------ taglia qui ------8<------ taglia qui ------8<------ taglia qui ------
  103.  
  104. #define POPUPIMAGE    (101)
  105. #define MUIIMAGE      (102)
  106. #define SNAPSHOTIMAGE (103)
  107. #define ICONIFYIMAGE  (104)
  108. #define PADLOCKIMAGE  (105)
  109. #define TBFRAMEIMAGE  (106)
  110.  
  111. ------ taglia qui ------8<------ taglia qui ------8<------ taglia qui ------
  112.  
  113. C'è già un applicativo che usa "tbiclass", ViNCEd di Thomas Richter.
  114.  
  115. Spero che anche tu supporterai "tbiclass" e contribuirai in tal modo a
  116. dare finalmente un aspetto consistente a tutti i gadget per la titlebar
  117. usati negli applicativi!
  118.  
  119. Grazie,
  120.                                       Massimo Tantignone (tanti@intercom.it)
  121.  
  122.  
  123.  
  124.